//pages\dizhi\dizhiAdd\dizhiAdd.js
const options = [{
    text: '浙江省',
    value: '330000',
    children: [{
      text: '杭州市',
      value: '330100'
    }],
  },
  {
    text: '江苏省',
    value: '320000',
    children: [{
      text: '南京市',
      value: '320100'
    }],
  },
];
Page({

  /**
   * 页面的初始数据
   */
  data: {
    show: false,
    options,
    fieldValue: '',
    cascaderValue: '',

    contanctPerson: '',
    phoneNum: '',
    address: '',
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.eventChannel = this.getOpenerEventChannel();
    if (options.address) {
      const address = JSON.parse(options.address);
      this.setData({
        contanctPerson: address.name,
        phoneNum: address.phoneNum,
        fieldValue: address.home.split(' ').slice(0, -1).join(' '), // 提取地区部分
        address: address.home.split(' ').slice(-1)[0], // 提取详细地址
        editIndex: options.index
      });
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  onClickLeft() {
    wx.navigateBack();
  },
  onClick() {
    this.setData({
      show: true,
    });
  },

  onClose() {
    this.setData({
      show: false,
    });
  },

  onFinish(e) {
    const {
      selectedOptions,
      value
    } = e.detail;
    const fieldValue = selectedOptions
      .map((option) => option.text || option.name)
      .join(' ');
    this.setData({
      fieldValue,
      cascaderValue: value,
    })
  },

  navBack() {
    let infor = {
      contanctPerson: this.data.contanctPerson,
      phoneNum: this.data.phoneNum,
      area: this.data.fieldValue,
      address: this.data.address
    };
    if (this.data.editIndex !== undefined) {
      // 编辑：发送更新后的地址和索引
      this.eventChannel.emit('updateAddress', { index: this.data.editIndex, address: infor });
    } else {
      // 添加：发送新地址
      this.eventChannel.emit('addAddress', { address: infor });
    }
    wx.navigateBack();
  },

  onChange(event) {
    const label = event.currentTarget.dataset.label;
    const inputValue = event.detail;
    console.log(label, inputValue);
    switch (label) {
      case '联系人':
        this.setData({
          contanctPerson: inputValue
        });
        break;
      case '详细地址':
        this.setData({
          address: inputValue
        });
        break;
      case '手机号':
        this.setData({
          phoneNum: inputValue
        });
        break;
      default:
        break;
    }
  },
})